package com.tedu.webmagic.pojo;

import java.sql.*;

/**
 * jdbc的工具类
 * 写一个sql---调用方法---完成对数据库全部操作
 */
public class JDBCUtill {
    //静态构造代码快   加载驱动  只执行一次
    static {
        try {
            Class.forName("com.mysql.jdbc.Driver");
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
            System.out.println("找不到驱动，加载失败");
        }
    }

    /**
     * 获取数据库的连接对象
     * @return
     */
    public static Connection getConnection() throws SQLException {

        //加载完驱动，通过驱动获取数据库的连接
        return DriverManager.getConnection("jdbc:mysql://localhost:3306/data",
                "root",
                "123456");
    }

    //得到执行器

    /**
     * 执行sql  预编译  返回 执行器
     * @param connection
     * @param sql
     * @return
     */
    public static PreparedStatement getPrp(Connection connection,String sql) throws SQLException {
        PreparedStatement preparedStatement = connection.prepareStatement(sql);
        return preparedStatement;
    }

    //  执行sql
    //增删改   int

    /**
     * 执行
     * @param preparedStatement
     * @return
     */
    public  static int upodata(PreparedStatement preparedStatement) throws SQLException {
        int i = preparedStatement.executeUpdate();
        return i;
    }

    /**
     * 执行数据库  查询操作
     * @param preparedStatement
     * @return
     * @throws SQLException
     */
    public  static ResultSet query(PreparedStatement preparedStatement) throws SQLException {
        ResultSet resultSet = preparedStatement.executeQuery();
        return resultSet;
    }
    //  释放资源

    /**
     * 资源关闭顺序
     */
    public static void close(ResultSet resultSet,
                             PreparedStatement preparedStatement,
                             Connection connection){
        try{
            resultSet.close();
        }catch (Exception E){

        }
        try{
            preparedStatement.close();
        }catch (Exception E){

        }

        try{
            connection.close();
        }catch (Exception E){

        }

    }


}
